var e = require;
var t = module;
var o = exports;
var n,
    i = o,
    a =
        ((n = function (e, t) {
            return (n =
                Object.setPrototypeOf ||
                ({__proto__: []} instanceof Array &&
                    function (e, t) {
                        e.__proto__ = t;
                    }) ||
                function (e, t) {
                    for (var o in t) t.hasOwnProperty(o) && (e[o] = t[o]);
                })(e, t);
        }),
        function (e, t) {
            function o() {
                this.constructor = e;
            }
            n(e, t), (e.prototype = null === t ? Object.create(t) : ((o.prototype = t.prototype), new o()));
        });
Object.defineProperty(i, "__esModule", {value: !0}),
    (i.BevNodePreconditionXOR =
        i.BevNodePreconditionOR =
        i.BevNodePreconditionAND =
        i.BevNodePreconditionNOT =
        i.BevNodePreconditionFALSE =
        i.BevNodePreconditionTRUE =
        i.BevNodePrecondition =
            void 0);
var r = function () {};
i.BevNodePrecondition = r;
var s = (function (e) {
    function t() {
        return (null !== e && e.apply(this, arguments)) || this;
    }
    return (
        a(t, e),
        (t.prototype.ExternalCondition = function () {
            return !0;
        }),
        t
    );
})(r);
i.BevNodePreconditionTRUE = s;
var c = (function (e) {
    function t() {
        return (null !== e && e.apply(this, arguments)) || this;
    }
    return (
        a(t, e),
        (t.prototype.ExternalCondition = function () {
            return !1;
        }),
        t
    );
})(r);
i.BevNodePreconditionFALSE = c;
var l = (function (e) {
    function t(t) {
        var o = e.call(this) || this;
        return (o.m_lhs = null), (o.m_lhs = t), o;
    }
    return (
        a(t, e),
        (t.prototype.ExternalCondition = function (e) {
            return !this.m_lhs.ExternalCondition(e);
        }),
        t
    );
})(r);
i.BevNodePreconditionNOT = l;
var d = (function (e) {
    function t(t, o) {
        var n = e.call(this) || this;
        return (n.m_lhs = null), (n.m_rhs = null), (n.m_lhs = t), (n.m_rhs = o), n;
    }
    return (
        a(t, e),
        (t.prototype.ExternalCondition = function (e) {
            return this.m_lhs.ExternalCondition(e) && this.m_rhs.ExternalCondition(e);
        }),
        t
    );
})(r);
i.BevNodePreconditionAND = d;
var u = (function (e) {
    function t(t, o) {
        var n = e.call(this) || this;
        return (n.m_lhs = null), (n.m_rhs = null), (n.m_lhs = t), (n.m_rhs = o), n;
    }
    return (
        a(t, e),
        (t.prototype.ExternalCondition = function (e) {
            return this.m_lhs.ExternalCondition(e) || this.m_rhs.ExternalCondition(e);
        }),
        t
    );
})(r);
i.BevNodePreconditionOR = u;
var p = (function (e) {
    function t(t, o) {
        var n = e.call(this) || this;
        return (n.m_lhs = null), (n.m_rhs = null), (n.m_lhs = t), (n.m_rhs = o), n;
    }
    return (
        a(t, e),
        (t.prototype.ExternalCondition = function (e) {
            return this.m_lhs.ExternalCondition(e) !== this.m_rhs.ExternalCondition(e);
        }),
        t
    );
})(r);
i.BevNodePreconditionXOR = p;
